4 PRINTCHR$(142);CHR$(8)"[147]":P$="MENU RUNNER":POKE53264,0 8 PRINTTAB(9)"[154]PLEASE WAIT WHILE DATA":PRINTTAB(12)"IS BEING LOADED" 12 POKE53281,0:V=53248:POKEV,190:POKEV+1,106:POKEV+2,190:POKEV+3,148 16 POKEV+4,234:POKEV+5,106:POKEV+6,234:POKEV+7,148:POKEV+29,15:POKEV+23,15 20 POKE53280,12:NM=332.195833:DN=INT(NM):KY=1989 24 SD=54272:FOR I=SD TO SD+23:POKE I,0:NEXT:POKE SD+24,15:POKE 788,52 28 FORP1=15360 TO 15422:READQ1:POKEP1,Q1:NEXT 32 FORP2=15424 TO 15486:READQ2:POKEP2,Q2:NEXT 36 FORP3=15488 TO 15550:READQ3:POKEP3,Q3:NEXT 40 FORP4=15552 TO 15614:READQ4:POKEP4,Q4:NEXT 44 FORP5=15616 TO 15678:READQ5:POKEP5,Q5:NEXT 48 FORP6=15680 TO 15742:READQ6:POKEP6,Q6:NEXT 52 FORP7=15744 TO 15806:READQ7:POKEP7,Q7:NEXT 56 FORP8=15808 TO 15870:READQ8:POKEP8,Q8:NEXT 60 FORP9=15872 TO 15934:READQ9:POKEP9,Q9:NEXT 64 FORP10=15936 TO 15998:READQ10:POKEP10,Q10:NEXT 68 FORP11=16000 TO 16062:READQ11:POKEP11,Q11:NEXT 72 FORP12=16064 TO 16126:READQ12:POKEP12,Q12:NEXT 76 FORP13=16128 TO 16190:READQ13:POKEP13,Q13:NEXT 80 FORP14=16192 TO 16254:READQ14:POKEP14,Q14:NEXT 84 FORP15=16256 TO 16318:READQ15:POKEP15,Q15:NEXT 88 FORP16=16320 TO 16382:READQ16:POKEP16,Q16:NEXT:GOTO176 92 POKE V+21,0:PRINT"[147]" 96 PRINTTAB(14)"[159]LOADING ME[158]N[159]U":PRINT"[144]LOAD"CHR$(34)P$CHR$(34)",8" 100 POKE198,4:POKE631,13:POKE632,82:POKE633,213:POKE634,13:END 104 PRINT"[147]":POKEV+21,0:POKE53281,14:POKE53280,14:SYS64738 108 FOR W=1 TO 1000:NEXT W 112 POKE 198,0 116 FOR C=1 TO 10 120 GET C$:IF C$="[136]"THEN92 124 IF C$="[140]"THEN104 128 IF C$<>"[136]" AND C$<>"[140]" AND C$<>""THEN176 132 NEXT 136 PRINT" [146]PRESS ANY KEY[145]" 140 FOR D=1 TO 30 144 GET D$:IF D$="[136]"THEN92 148 IF D$="[140]"THEN104 152 IF D$<>"[136]" AND D$<>"[140]" AND D$<>""THEN176 156 NEXT 160 PRINT" [152]PRESS[146] ANY[146] KEY[145]" 164 GOTO116 168 PRINT"[145] [157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";:RETURN 172 PRINTTAB(8+LEN(S$))"[145] [157]":S$="":RETURN 176 GOSUB936:POKE198,0 180 POKEV+21,0:MD=0:L=0:Y$="0":M$="0":D$="0":AH$="0":PRINT"[147]" 184 PRINT" YEAR ? [156]";:Y$="" 185 IF XX>10 THEN XX=0 186 IF XX>5 THEN PRINT" [157]";:GOTO 190 188 PRINT"[164][157]"; 190 GET A$ 192 IF A$="[136]"THEN92 196 IF A$="[140]"THEN104 200 IF A$=CHR$(19) THEN176 204 IF A$=CHR$(20) THEN PRINT:GOSUB936:GOSUB168:GOTO184 208 IF A$=CHR$(13) THEN PRINT:S$=Y$:GOSUB172:GOTO224 212 IF A$<"0" OR A$>"9" THEN222 216 IF LEN(Y$)>3 THEN222 220 PRINT A$;:Y$=Y$+A$ 222 XX=XX+1:GOTO 185 224 YY=VAL(Y$) 228 IF YY>2500 OR YY<1582 THEN GOSUB168:GOTO184 232 GOSUB936 236 PRINT" MONTH? [156]";:M$="" 237 IF XX>10 THEN XX=0 238 IF XX>5 THEN PRINT" [157]";:GOTO 242 240 PRINT"[164][157]"; 242 GET A$ 244 IF A$=CHR$(19) THEN176 248 IF A$=CHR$(20) THEN PRINT:GOSUB936:GOSUB168:GOTO236 252 IF A$=CHR$(13) THEN PRINT:S$=M$:GOSUB172:GOTO268 256 IF A$<"0" OR A$>"9" THEN266 260 IF LEN(M$)>1 THEN266 264 PRINT A$;:M$=M$+A$ 266 XX=XX+1:GOTO 237 268 MM=VAL(M$) 272 IFMM<1ORMM>12 THEN GOSUB168:GOTO236 276 IF YY=1582 AND MM<10 THEN GOSUB168:GOTO236 280 GOSUB936 284 PRINT" DAY ?[156] ";:D$="" 285 IF XX>10 THEN XX=0 286 IF XX>5 THEN PRINT" [157]";:GOTO 290 288 PRINT"[164][157]"; 290 GET A$ 292 IF A$=CHR$(19) THEN176 296 IF A$=CHR$(20) THEN PRINT:GOSUB936:GOSUB168:GOTO284 300 IF A$=CHR$(13) THEN PRINT:S$=D$:GOSUB172:DD=VAL(D$):GOTO324 304 IF A$<"0" OR A$>"9" THEN314 308 IF LEN(D$)>1 THEN314 312 PRINT A$;:D$=D$+A$ 314 XX=XX+1:GOTO 285 316 IF MM=2 AND DD>29 THEN GOSUB168:GOTO284 320 GOTO332 324 IF((YY/4=INT(YY/4))AND(YY/100<>INT(YY/100)))OR(YY/400=INT(YY/400))THEN316 328 IF MM=2 AND DD>28 THEN GOSUB168:GOTO284 332 IF(MM=4 OR MM=6 OR MM=9 OR MM=11)AND DD>30 THEN GOSUB168:GOTO284 336 IF DD<1 OR DD>31 THEN GOSUB168:GOTO284 340 DD=DD-1 344 IF YY=1582ANDMM=10ANDDD<14THENGOSUB168:GOTO284 348 GOSUB936 352 PRINT" HOUR ?[156] ";:AH$="":AP$="" 353 IF XX>8 THEN XX=0 354 IF XX>4 THEN PRINT" [157]";:GOTO 358 356 PRINT"[164][157]"; 358 GET A$ 360 A=VAL(A$) 364 IF A$=CHR$(19) THEN176 368 IF A$=CHR$(20) THEN PRINT:GOSUB936:GOSUB168:GOTO352 372 IF A$=CHR$(13) THEN PRINT:S$=AH$:GOSUB172:GOTO400 376 IF A$="A" OR A$="P" OR A$="M" THEN384 380 IF A$<"0" OR A$>"9" THEN398 384 IF LEN(AH$)>3 THEN398 388 PRINT A$; 392 IF A$<>RIGHT$(STR$(A),LEN(A$)) THEN AP$=AP$+A$ 396 AH$=AH$+A$ 398 XX=XX+1:GOTO 353 400 AH=VAL(AH$) 404 IF AH<1 OR AH>12 THENGOSUB168:GOTO352 408 AQ$=RIGHT$(AH$,2) 412 IF AQ$<>AP$ THEN GOSUB168:GOTO352 416 IF AQ$<>"AM" AND AQ$<>"PM" THEN GOSUB168:GOTO352 420 IF AP$="AM" AND AH=12 THEN AH=0 424 IF AP$="PM" AND AH<12 THEN AH=AH+12 428 AH=AH/24 432 GOSUB936 436 PRINT"[145][145][145][145]"TAB(20)" MOON PHASE: [146]":PRINTTAB(22)"WORKING...[158]" 440 Y=YY-KY:N=SGN(Y):YD=Y*365 448 FOR MN=1 TO MM-1 452 DC=31 456 IF MM=1 THEN DC=0 460 IF MN=2 THEN DC=28 464 IF MN=4 OR MN=6 OR MN=9 OR MN=11 THEN DC=30 468 MD=MD+DC 472 NEXT MN 476 GOSUB700 480 IF N=0 THEN N=1 484 YT=ABS(N*(YD+MD+DD+AH-NM)+L) 488 YA=ABS(N*(YD+MD+DD+AH-DN)+L) 492 IF YD+MD+DD+AH<=NM THEN512 500 LM=(YT/29.53058):PF=LM-INT(LM):LP=PF*29.53058 504 WN=YA/7:DF=WN-INT(WN):DW=(DF*7)+1.01 508 GOTO520 512 LM=(YT/29.53058):PF=LM-INT(LM):LP=29.53058-(PF*29.53058) 516 WN=YA/7:DF=WN-INT(WN):DW=7-(DF*7)+1.01 520 B=ABS(LP)*1000+.5:MP=SGN(LP)*INT(B)/1000 524 IF YY=KY AND MD+DD=DN THEN DW=1.01 528 IF DW>8 THEN DW=1.01 532 IF DW>5 AND DW<6 THEN DW$=" SUNDAY" 536 IF DW>6 AND DW<7 THEN DW$=" MONDAY" 540 IF DW>7 AND DW<8 THEN DW$=" TUESDAY" 544 IF DW>1 AND DW<2 THEN DW$="WEDNESDAY" 548 IF DW>2 AND DW<3 THEN DW$="THURSDAY" 552 IF DW>3 AND DW<4 THEN DW$=" FRIDAY" 556 IF DW>4 AND DW<5 THEN DW$="SATURDAY" 560 GOSUB944 564 IF MP>=1.845 AND MP<=5.535 THEN N3=248:N4=249:N5=12:N8=6:N9=6:GOTO572 568 GOTO576 572 PRINT""TAB(20)"FIRST CRESCENT":GOSUB720 576 IF MP>=5.536 AND MP<=9.225 THEN N3=241:N4=243:N5=12:N8=14:N9=14:GOTO584 580 GOTO588 584 PRINT""TAB(20)"FIRST QUARTER":GOSUB720 588 IF MP>=9.226 AND MP<=12.915 THEN GOTO596 592 GOTO604 596 N1=253:N2=252:N3=241:N4=243:N5=15:N6=3:N7=3:N8=3:N9=3 600 PRINT""TAB(20)"WAXING GIBBOUS":GOSUB720 604 IF MP>=12.916 AND MP<=16.605 THEN GOTO612 608 GOTO620 612 N1=240:N2=242:N3=241:N4=243:N5=15:N6=1:N7=1:N8=1:N9=1 616 PRINT""TAB(22)"FULL MOON ":GOSUB720 620 IF MP>=16.606 AND MP<=20.295 THEN GOTO628 624 GOTO636 628 N1=240:N2=242:N3=254:N4=255:N5=15:N6=3:N7=3:N8=3:N9=3 632 PRINT""TAB(20)"WANING GIBBOUS":GOSUB720 636 IF MP>=20.296 AND MP<=23.985 THEN N1=240:N2=242:N5=3:N6=14:N7=14:GOTO644 640 GOTO648 644 PRINT""TAB(20)"LAST QUARTER":GOSUB720 648 IF MP>=23.986 AND MP<=27.675 THEN N1=250:N2=251:N5=3:N6=6:N7=6:GOTO656 652 GOTO660 656 PRINT""TAB(20)"LAST CRESCENT":GOSUB720 660 IF(MP>=27.676 AND MP<=29.53)OR(MP>=0AND MP<=1.844)THEN GOTO668 664 GOTO676 668 N1=244:N2=246:N3=245:N4=247:N5=15:N6=1:N7=1:N8=1:N9=1 672 PRINT""TAB(22)"NEW MOON ":GOSUB720 676 GOTO108 680 IF N=1 THEN692 684 IF MM>2 AND MM<13 THEN L=L-1 688 GOTO696 692 IF MM=1 OR MM=2 THEN L=L-1 696 RETURN 700 FOR X=YY TO KY STEP1*SGN(KY-YY) 704 IF((X/4=INT(X/4))AND(X/100<>INT(X/100)))OR(X/400=INT(X/400))THEN L=L+1 708 NEXT 712 IF((YY/4=INT(YY/4))AND(YY/100<>INT(YY/100)))OR(YY/400=INT(YY/400))THEN680 716 GOTO696 720 PRINTTAB(22)"[154]"DW$ 724 POKE2040,N1:POKE2041,N2:POKE2042,N3:POKE2043,N4:POKEV+21,N5:POKEV+39,N6 728 POKEV+40,N7:POKEV+41,N8:POKEV+42,N9 732 PRINT"":PRINTTAB(16) 736 ON MM GOTO740,768,796,796,800,840,856,856,860,861,896,924 740 IF MM=1 AND DD=0 THEN PRINT" NEW YEAR'S [154]DAY"; 741 IF YY>1985 AND MM=1 AND(DD>13ANDDD<21)AND DW$=" MONDAY"THEN743 742 GOTO746 743 PRINT" M. L. KING JR.'S":PRINTTAB(23)"BIRTHDAY" 744 PRINTTAB(23)"OBSERVED[145][145][145]":GOTO768 746 IFYY>1985ANDMM=1ANDDD=14THENPRINT" [154]M. L. KING JR.'S":GOTO752 748 GOTO768 752 PRINTTAB(23)"BIRTHDAY[145][145]" 768 IF MM=2 AND DD=1 THEN PRINT" [154]GROUNDHOG DAY"; 772 IF YY>1865 AND MM=2 AND DD=11 THEN PRINT" [156]LINCOLN'S BIRTHDAY"; 776 IF MM=2 AND DD=13 THEN PRINT" VALENTINE'S DAY"; 780 IF YY>1970 AND MM=2 AND (DD>13 AND DD<21) AND DW$=" MONDAY" THEN786 784 GOTO792 786 IF YY>1990 THEN PRINT" PRESIDENTS' DAY";:GOTO 792 788 PRINT" WASHINGTON'S BIRTHDAY":PRINTTAB(23)"OBSERVED[145]"; 792 IF YY>1799 AND MM=2 AND DD=21 THEN PRINT"WASHINGTON'S BIRTHDAY"; 796 IF MM=3 AND DD=16 THEN PRINT" [153]ST. PATRICK'S DAY"; 800 IF YY>1906 AND MM=5 AND (DD>6 AND DD<14) AND DW$=" SUNDAY" THEN808 804 GOTO812 808 PRINT" [154]MOTHER'S DAY"; 812 IF YY>1949 AND MM=5 AND(DD>13 AND DD<21)AND DW$="SATURDAY" THEN820 816 GOTO821 820 PRINT" ARMED FORCES DAY"; 821 IF YY>1970 AND MM=5 AND DD>23 AND DW$=" MONDAY"THEN823 822 GOTO824 823 PRINT" MEMORIAL DAY":PRINTTAB(22)"OBSERVED[145][145]":GOTO840 824 IF YY>1867 AND MM=5 AND DD=29 THEN PRINT" MEMORIAL DAY[145]" 840 IF YY>1776 AND MM=6 AND DD=13 THEN PRINT" FLAG DAY"; 844 IF YY>1909 AND MM=6 AND(DD>13 AND DD<21)AND DW$=" SUNDAY"THEN852 848 GOTO856 852 PRINT" [154]FATHER'S DAY"; 856 IFYY>1775ANDMM=7ANDDD=3THENPRINT" IN[154]DEP[154]END[154]ENC[154]E DA[154]Y"; 860 IF YY>1893 AND MM=9 AND DD<8 AND DW$=" MONDAY"THEN PRINT" LABOR DAY"; 861 IF YY>1970 AND MM=10 AND (DD>6 AND DD<14) AND DW$=" MONDAY" THEN863 862 GOTO864 863 PRINT" COLUMBUS DAY":PRINTTAB(22)"OBSERVED[145]";:GOTO880 864 IF MM=10 AND DD=11 THEN PRINT" [154]COLUMBUS DAY[145]" 880 IF YY>1970 AND MM=10 AND(DD>20 AND DD<28)AND DW$=" MONDAY" THEN888 884 GOTO892 888 PRINT" VETERAN'S DAY"CHR$(13)" OBSERVED[145]"; 892 IF MM=10 AND DD=30 THEN PRINT" HALLOWEEN"; 896 IFYY>1871ANDMM=11AND(DD>0ANDDD<8)ANDDW$=" TUESDAY"THEN904 900 GOTO908 904 PRINT" ELECTION DAY"; 908 IF YY>1953 AND MM=11 AND DD=10 THEN PRINT" VETERAN'S DAY"; 912 IFYY>1938ANDMM=11AND(DD>20ANDDD<28)ANDDW$="THURSDAY"THEN923 921 IF(YY>1862ANDYY<1939)ANDMM=11ANDDD>22ANDDW$="THURSDAY"THEN923 922 GOTO924 923 PRINT" [129]THANKSGIVING DAY"; 924 IF MM=12 AND DD=24 THEN PRINT" CHRISTMAS DAY"; 928 PRINT"[145][145][145][145][145][145][145][145]" 932 RETURN 936 POKESD+5,8:POKESD+6,240:POKESD,0:POKESD+1,90:POKESD+4,17:FORS=1TO100:NEXT 940 GOTO948 944 POKESD+5,8:POKESD+6,240:POKESD,0:POKESD+1,90:POKESD+4,17:FORS=1TO500:NEXT 948 POKE SD+4,0:POKE SD,0:POKE SD+1,0:RETURN 952 END 956 DATA000,000,255,000,007,255,000,031 960 DATA255,000,127,255,000,255,255,001 964 DATA255,255,003,255,255,007,255,255 968 DATA015,255,255,031,255,255,031,255 972 DATA255,063,255,255,063,255,255,127 976 DATA255,255,127,255,255,127,255,255 980 DATA255,255,255,255,255,255,255,255 984 DATA255,255,255,255,255,255,255 988 DATA255,000,000,255,224,000,255,248 992 DATA000,255,254,000,255,255,000,255 996 DATA255,128,255,255,192,255,255,224 1000 DATA255,255,240,255,255,248,255,255 1004 DATA248,255,255,252,255,255,252,255 1008 DATA255,254,255,255,254,255,255,254 1012 DATA255,255,255,255,255,255,255,255 1016 DATA255,255,255,255,255,255,255 1020 DATA255,255,255,255,255,255,255,255 1024 DATA255,255,255,255,255,255,255,127 1028 DATA255,255,127,255,255,127,255,255 1032 DATA063,255,255,063,255,255,031,255 1036 DATA255,031,255,255,015,255,255,007 1040 DATA255,255,003,255,255,001,255,255 1044 DATA000,255,255,000,127,255,000,031 1048 DATA255,000,007,255,000,000,255 1052 DATA255,255,255,255,255,255,255,255 1056 DATA255,255,255,255,255,255,255,255 1060 DATA255,254,255,255,254,255,255,254 1064 DATA255,255,252,255,255,252,255,255 1068 DATA248,255,255,248,255,255,240,255 1072 DATA255,224,255,255,192,255,255,128 1076 DATA255,255,000,255,254,000,255,248 1080 DATA000,255,224,000,255,000,000 1084 DATA000,000,255,000,007,000,000,024 1088 DATA000,000,096,000,000,128,000,001 1092 DATA000,000,002,000,000,004,000,000 1096 DATA008,000,000,016,000,000,016,000 1100 DATA000,032,000,000,032,000,000,064 1104 DATA000,000,064,000,000,064,000,000 1108 DATA128,000,000,128,000,000,128,000 1112 DATA000,128,000,000,128,000,000 1116 DATA255,000,000,000,224,000,000,024 1120 DATA000,000,006,000,000,001,000,000 1124 DATA000,128,000,000,064,000,000,032 1128 DATA000,000,016,000,000,008,000,000 1132 DATA008,000,000,004,000,000,004,000 1136 DATA000,002,000,000,002,000,000,002 1140 DATA000,000,001,000,000,001,000,000 1144 DATA001,000,000,001,000,000,001 1148 DATA128,000,000,128,000,000,128,000 1152 DATA000,128,000,000,128,000,000,064 1156 DATA000,000,064,000,000,064,000,000 1160 DATA032,000,000,032,000,000,016,000 1164 DATA000,016,000,000,008,000,000,004 1168 DATA000,000,002,000,000,001,000,000 1172 DATA000,128,000,000,096,000,000,024 1176 DATA000,000,007,000,000,000,255 1180 DATA000,000,001,000,000,001,000,000 1184 DATA001,000,000,001,000,000,001,000 1188 DATA000,002,000,000,002,000,000,002 1192 DATA000,000,004,000,000,004,000,000 1196 DATA008,000,000,008,000,000,016,000 1200 DATA000,032,000,000,064,000,000,128 1204 DATA000,001,000,000,006,000,000,024 1208 DATA000,000,224,000,255,000,000 1212 DATA255,000,000,127,224,000,063,248 1216 DATA000,015,254,000,007,255,000,003 1220 DATA255,128,001,255,192,001,255,224 1224 DATA000,255,240,000,127,248,000,127 1228 DATA248,000,063,252,000,063,252,000 1232 DATA031,254,000,031,254,000,031,254 1236 DATA000,031,255,000,015,255,000,015 1240 DATA255,000,015,255,000,015,255 1244 DATA000,015,255,000,015,255,000,015 1248 DATA255,000,015,255,000,031,255,000 1252 DATA031,254,000,031,254,000,031,254 1256 DATA000,063,252,000,063,252,000,127 1260 DATA248,000,127,248,000,255,240,001 1264 DATA255,224,001,255,192,003,255,128 1268 DATA007,255,000,015,254,000,063,248 1272 DATA000,127,224,000,255,000,000 1276 DATA000,000,255,000,007,254,000,031 1280 DATA252,000,127,240,000,255,224,001 1284 DATA255,192,003,255,128,007,255,128 1288 DATA015,255,000,031,254,000,031,254 1292 DATA000,063,252,000,063,252,000,127 1296 DATA248,000,127,248,000,127,248,000 1300 DATA255,248,000,255,240,000,255,240 1304 DATA000,255,240,000,255,240,000 1308 DATA255,240,000,255,240,000,255,240 1312 DATA000,255,240,000,255,248,000,127 1316 DATA248,000,127,248,000,127,248,000 1320 DATA063,252,000,063,252,000,031,254 1324 DATA000,031,254,000,015,255,000,007 1328 DATA255,128,003,255,128,001,255,192 1332 DATA000,255,224,000,127,240,000,031 1336 DATA252,000,007,254,000,000,255 1340 DATA000,031,255,000,031,255,000,031 1344 DATA255,000,031,255,000,015,255,000 1348 DATA015,255,000,015,255,000,015,255 1352 DATA000,007,255,000,007,255,000,003 1356 DATA255,000,003,255,000,001,255,000 1360 DATA000,255,000,000,255,000,000,127 1364 DATA000,000,063,000,000,031,000,000 1368 DATA015,000,000,003,000,000,000 1372 DATA000,000,000,000,000,003,000,000 1376 DATA015,000,000,031,000,000,063,000 1380 DATA000,127,000,000,255,000,000,255 1384 DATA000,001,255,000,003,255,000,003 1388 DATA255,000,007,255,000,007,255,000 1392 DATA015,255,000,015,255,000,015,255 1396 DATA000,015,255,000,031,255,000,031 1400 DATA255,000,031,255,000,031,255 1404 DATA000,000,000,192,000,000,240,000 1408 DATA000,248,000,000,252,000,000,254 1412 DATA000,000,255,000,000,255,000,000 1416 DATA255,128,000,255,192,000,255,192 1420 DATA000,255,224,000,255,224,000,255 1424 DATA240,000,255,240,000,255,240,000 1428 DATA255,240,000,255,248,000,255,248 1432 DATA000,255,248,000,255,248,000 1436 DATA255,248,000,255,248,000,255,248 1440 DATA000,255,248,000,255,240,000,255 1444 DATA240,000,255,240,000,255,240,000 1448 DATA255,224,000,255,224,000,255,192 1452 DATA000,255,192,000,255,128,000,255 1456 DATA000,000,255,000,000,254,000,000 1460 DATA252,000,000,248,000,000,240,000 1464 DATA000,192,000,000,000,000,000